Snapshotting is a technique to preserve the state or the data of a storage system at a particular point in time. A “snapshot copy” is a point-in-time image of a set of data. Computer systems can employ a snapshotting mechanism to backup data stored in the storage components of the computer system.
Storage servers commonly employ the snapshotting mechanism for backup of the storage volumes of the storage servers. A storage server is a processing system that provides one or more storage clients with access (e.g., read and write access) to a mass storage facility over a network. Such a system is called a network storage system. A “volume” is a logical data set which is an abstraction of physical storage, combining one or more physical mass storage devices (e.g., disks) or parts thereof into a single logical storage object, and which is managed as a single administrative unit, such as a single file system. A volume may be defined from a larger group of available storage, such as an aggregate. A volume may be logically broken down into logical data sets (storage objects) called “plexes”, which may contain one or more RAID groups.
A storage server may provide a “Previous Version” feature as a way for a client to view and restore previous versions of files and directories that are maintained in volume snapshot copies. However, such “Previous Version” feature is very difficult to implement in a clustered storage system that includes multiple storage nodes and multiple file systems of volumes residing on different storage nodes.